_c_t_l_p_t_r points to the structure describing the control part, if any, to be
included in the message. The _bbbb_uuuu_ffff field in the _ssss_tttt_rrrr_bbbb_uuuu_ffff structure points to
the buffer where the control information resides, and the _llll_eeee_nnnn field
indicates the number of bytes to be sent. The _mmmm_aaaa_xxxx_llll_eeee_nnnn field is not used
in _pppp_uuuu_tttt_mmmm_ssss_gggg [see _gggg_eeee_tttt_mmmm_ssss_gggg(2)]. In a similar manner, _d_a_t_a_p_t_r specifies the
data, if any, to be included in the message. _f_l_a_g_s indicates what type
of message should be sent and is described later.
To send the data part of a message, _d_a_t_a_p_t_r must not be _NNNN_UUUU_LLLL_LLLL and the _llll_eeee_nnnn
field of _d_a_t_a_p_t_r must have a value of 0 or greater. To send the control
part of a message, the corresponding values must be set for _c_t_l_p_t_r. No
data (control) part is sent if either _d_a_t_a_p_t_r (_c_t_l_p_t_r) is _NNNN_UUUU_LLLL_LLLL or the _llll_eeee_nnnn
field of _d_a_t_a_p_t_r (_c_t_l_p_t_r) is set to -1.
For _pppp_uuuu_tttt_mmmm_ssss_gggg(), if a control part is specified, and _f_l_a_g_s is set to
_RRRR_SSSS______HHHH_IIII_PPPP_RRRR_IIII, a high priority message is sent. If no control part is
specified, and _f_l_a_g_s is set to _RRRR_SSSS______HHHH_IIII_PPPP_RRRR_IIII, _pppp_uuuu_tttt_mmmm_ssss_gggg fails and sets _eeee_rrrr_rrrr_nnnn_oooo to
_EEEE_IIII_NNNN_VVVV_AAAA_LLLL. If _f_l_a_g_s is set to 0, a normal (non-priority) message is sent.
If no control part and no data part are specified, and _f_l_a_g_s is set to 0,
The stream head guarantees that the control part of a message generated
by _pppp_uuuu_tttt_mmmm_ssss_gggg is at least 64 bytes in length.
For _pppp_uuuu_tttt_pppp_mmmm_ssss_gggg, the flags are different. _f_l_a_g_s is a bitmask with the
following mutually-exclusive flags defined: _MMMM_SSSS_GGGG______HHHH_IIII_PPPP_RRRR_IIII and _MMMM_SSSS_GGGG______BBBB_AAAA_NNNN_DDDD. If
_f_l_a_g_s is set to 0, _pppp_uuuu_tttt_pppp_mmmm_ssss_gggg fails and sets _eeee_rrrr_rrrr_nnnn_oooo to _EEEE_IIII_NNNN_VVVV_AAAA_LLLL. If a control
part is specified and _f_l_a_g_s is set to _MMMM_SSSS_GGGG______HHHH_IIII_PPPP_RRRR_IIII and _b_a_n_d is set to 0, a
high-priority message is sent. If _f_l_a_g_s is set to _MMMM_SSSS_GGGG______HHHH_IIII_PPPP_RRRR_IIII and either
no control part is specified or _b_a_n_d is set to a non-zero value,
_pppp_uuuu_tttt_pppp_mmmm_ssss_gggg() fails and sets _eeee_rrrr_rrrr_nnnn_oooo to _EEEE_IIII_NNNN_VVVV_AAAA_LLLL. If flags is set to _MMMM_SSSS_GGGG______BBBB_AAAA_NNNN_DDDD,
then a message is sent in the priority band specified by _b_a_n_d. If a
control part and data part are not specified and _f_l_a_g_s is set to
_MMMM_SSSS_GGGG______BBBB_AAAA_NNNN_DDDD, no message is sent and 0 is returned.
Normally, _pppp_uuuu_tttt_mmmm_ssss_gggg() will block if the stream write queue is full due to
internal flow control conditions. For high-priority messages, _pppp_uuuu_tttt_mmmm_ssss_gggg()
does not block on this condition. For other messages, _pppp_uuuu_tttt_mmmm_ssss_gggg() does not
block when the write queue is full and _OOOO______NNNN_DDDD_EEEE_LLLL_AAAA_YYYY or _OOOO______NNNN_OOOO_NNNN_BBBB_LLLL_OOOO_CCCC_KKKK is set.
Instead, it fails and sets _eeee_rrrr_rrrr_nnnn_oooo to _EEEE_AAAA_GGGG_AAAA_IIII_NNNN.
_pppp_uuuu_tttt_mmmm_ssss_gggg or _pppp_uuuu_tttt_pppp_mmmm_ssss_gggg also blocks, unless prevented by lack of internal
resources, waiting for the availability of message blocks in the stream,
regardless of priority or whether _OOOO______NNNN_DDDD_EEEE_LLLL_AAAA_YYYY or _OOOO______NNNN_OOOO_NNNN_BBBB_LLLL_OOOO_CCCC_KKKK has been
specified. No partial message is sent.
_pppp_uuuu_tttt_mmmm_ssss_gggg fails if one or more of the following are true:
_EEEE_AAAA_CCCC_CCCC_EEEE_SSSS _f_i_l_d_e_s is open to a dynamic device, and write permission on
the device is denied.
_EEEE_AAAA_GGGG_AAAA_IIII_NNNN A non-priority message was specified, the _OOOO______NNNN_DDDD_EEEE_LLLL_AAAA_YYYY or
_OOOO______NNNN_OOOO_NNNN_BBBB_LLLL_OOOO_CCCC_KKKK flag is set and the stream write queue is full
due to internal flow control conditions.
_EEEE_BBBB_AAAA_DDDD_FFFF _f_d is not a valid file descriptor open for writing.
_EEEE_FFFF_AAAA_UUUU_LLLL_TTTT _c_t_l_p_t_r or _d_a_t_a_p_t_r points outside the allocated address
space.
_EEEE_IIII_NNNN_TTTT_RRRR A signal was caught during the _pppp_uuuu_tttt_mmmm_ssss_gggg system call.
_EEEE_IIII_NNNN_VVVV_AAAA_LLLL An undefined value was specified in _f_l_a_g_s, or _f_l_a_g_s is set
to _RRRR_SSSS______HHHH_IIII_PPPP_RRRR_IIII and no control part was supplied.
_EEEE_IIII_NNNN_VVVV_AAAA_LLLL The stream referenced by _f_d is linked below a multiplexor.
_EEEE_IIII_NNNN_VVVV_AAAA_LLLL For _pppp_uuuu_tttt_pppp_mmmm_ssss_gggg, if _f_l_a_g_s is set to _MMMM_SSSS_GGGG______HHHH_IIII_PPPP_RRRR_IIII and _b_a_n_d is
nonzero.
_EEEE_IIII_OOOO _f_i_l_d_e_s is open to a device that is in the process of